{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Learning selection with in the simple example\n",
    "\n",
    "Here we run a simple linear regression model (even without intercept) \n",
    "and make a selection when the $Z$ score is larger than 2.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/jonathantaylor/anaconda/envs/py36/lib/python3.6/site-packages/sklearn/ensemble/weight_boosting.py:29: DeprecationWarning: numpy.core.umath_tests is an internal NumPy module and should not be imported. It will be removed in a future NumPy release.\n",
      "  from numpy.core.umath_tests import inner1d\n",
      "Using TensorFlow backend.\n",
      "/Users/jonathantaylor/anaconda/envs/py36/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:455: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_qint8 = np.dtype([(\"qint8\", np.int8, 1)])\n",
      "/Users/jonathantaylor/anaconda/envs/py36/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:456: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_quint8 = np.dtype([(\"quint8\", np.uint8, 1)])\n",
      "/Users/jonathantaylor/anaconda/envs/py36/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:457: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_qint16 = np.dtype([(\"qint16\", np.int16, 1)])\n",
      "/Users/jonathantaylor/anaconda/envs/py36/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:458: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_quint16 = np.dtype([(\"quint16\", np.uint16, 1)])\n",
      "/Users/jonathantaylor/anaconda/envs/py36/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:459: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  _np_qint32 = np.dtype([(\"qint32\", np.int32, 1)])\n",
      "/Users/jonathantaylor/anaconda/envs/py36/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:462: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n",
      "  np_resource = np.dtype([(\"resource\", np.ubyte, 1)])\n",
      "R[write to console]: Loaded gbm 2.1.5\n",
      "\n",
      "R[write to console]: randomForest 4.6-14\n",
      "\n",
      "R[write to console]: Type rfNews() to see new features/changes/bug fixes.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "import functools\n",
    "\n",
    "import numpy as np; np.random.seed(0)\n",
    "from scipy.stats import norm as ndist\n",
    "\n",
    "import statsmodels.api as sm\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "import pandas as pd\n",
    "\n",
    "from selectinf.tests.instance import gaussian_instance\n",
    "\n",
    "from selectinf.learning.utils import full_model_inference, pivot_plot\n",
    "from selectinf.learning.core import normal_sampler\n",
    "from selectinf.learning.Rfitters import logit_fit\n",
    "\n",
    "def simulate(n=20, p=1, s=1, signal=1, sigma=2, alpha=0.1, B=2000):\n",
    "\n",
    "    # description of statistical problem\n",
    "\n",
    "    X, y, truth = gaussian_instance(n=n,\n",
    "                                    p=p, \n",
    "                                    s=s,\n",
    "                                    equicorrelated=False,\n",
    "                                    rho=0.5, \n",
    "                                    sigma=sigma,\n",
    "                                    signal=signal,\n",
    "                                    random_signs=True,\n",
    "                                    scale=False)[:3]\n",
    "\n",
    "    dispersion = sigma**2\n",
    "\n",
    "    S = X.T.dot(y)\n",
    "    covS = dispersion * X.T.dot(X)\n",
    "    sampler = normal_sampler(S, covS)\n",
    "\n",
    "    def base_algorithm(X, dispersion, sampler):\n",
    "\n",
    "        success = np.zeros(p)\n",
    "\n",
    "        scale = 0.\n",
    "        noisy_S = sampler(scale=scale)\n",
    "        \n",
    "        Z = noisy_S / np.sqrt(np.linalg.norm(X)**2 * dispersion)\n",
    "        if Z > 2:\n",
    "            return set([0])\n",
    "        else:\n",
    "            return set([])\n",
    "\n",
    "    selection_algorithm = functools.partial(base_algorithm, X, dispersion)\n",
    "\n",
    "    # run selection algorithm\n",
    "\n",
    "    return full_model_inference(X,\n",
    "                                y,\n",
    "                                truth,\n",
    "                                selection_algorithm,\n",
    "                                sampler,\n",
    "                                B=B,\n",
    "                                fit_probability=logit_fit,\n",
    "                                fit_args={'df':20},\n",
    "                                how_many=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/jonathantaylor/git-repos/selectinf/selectinf/distributions/discrete_family.py:86: RuntimeWarning: divide by zero encountered in log\n",
      "  self._lw = np.array([np.log(v) for v in xw[:,1]])\n"
     ]
    }
   ],
   "source": [
    "dfs = []\n",
    "for i in range(1000):\n",
    "    df = simulate()\n",
    "    if df is not None:\n",
    "        dfs.append(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(8, 8))\n",
    "results = pd.concat(dfs)\n",
    "pivot_plot(results, fig=fig);"
   ]
  }
 ],
 "metadata": {
  "jupytext": {
   "cell_metadata_filter": "all,-slideshow",
   "formats": "ipynb,Rmd"
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
